import { createStore}  from "redux";
import { combineReducers } from "redux";
// 获取local动态ip
// import {getAjaxurl} from './OperatesCookie.js';

const name = {
    'ADD_DictionaryInfo': 'ADD_DictionaryInfo'
};

/*
* @ 解析redux的使用 createStore  创建关于redux的对象
* @ combineReducers 多个函数分装在一起，交给createStore使用
*  @ 开始state中的值如果为空，则赋予state =[] ,否则定义初始化数据类型
*  @ action 有两个参数，type为类型 payload为保存当前传递的最新数据 此时state解析为当前最新的数据存储
* */

// 登录时新增字典
const initialStateDictionaryInfo = {
    DictionaryInfo: []
}
const DictionaryInfos = function (state=initialStateDictionaryInfo,action) {
    switch (action.type){
        case name.ADD_DictionaryInfo:{
            return {
                ...state,
                DictionaryInfo:[...state.DictionaryInfo, action.payload]
            }
        }
        default:
            return state;
    }
}

//创建状态管理数据表参数
const allReducer = {
    DictionaryInfo:DictionaryInfos,
}
const reducer = combineReducers(allReducer);
export let store = createStore(reducer);
// console.log(store);
/*
* @ 通过写三个方法 去操作数据 三个方法带有三个参数
* */

// 登录时存储试题字典
export function addDictionaryInfo(dicName, dicType, dicValue, typeCnName){
    return {
        type: 'ADD_DictionaryInfo',
        payload: { dicName, dicType, dicValue, typeCnName }
    }
}

/*
* @ subscribe函数监听数据更改，放在调用函数更改之后执行调用
* */
// let unsubscribe = store.subscribe( ()=>{
//     // console.log(store.getState());
//     }
// )

/*
* @    调用分写数据库方法 增加，删除，更改
* */
// store.dispatch(delToCart("qiao",1,250));

export function UpdateStatus() {
    return store.getState();//调用检测代码函数
};

